package trans

import (
	"bgs/db/sqlc/ctype"
	"bgs/grpc/gen/shared/message"
)

// MiniItemToPb ctype.MiniItem -> *message.MiniItem
func MiniItemToPb(o ctype.MiniItem) *message.MiniItem {
	return &message.MiniItem {
		Id: o.ID,
		Name: o.Name,
	}
}

// MapMiniItemToPb []ctype.MiniItem  -> []*message.MiniItem
func MapMiniItemToPb(list []ctype.MiniItem, f func(ctype.MiniItem) *message.MiniItem) []*message.MiniItem {
	r := make([]*message.MiniItem, len(list))
	for i, item := range list {
		r[i] = f(item)
	}
	return r
}

// MiniItemFromPb *message.MiniItem -> ctype.MiniItem
func MiniItemFromPb (o *message.MiniItem) ctype.MiniItem {
	return ctype.MiniItem {
		ID: o.Id,
		Name: o.Name,
	}
}

// MapMiniItemFromPb []*message.MiniItem -> []ctype.MiniItem 
func MapMiniItemFromPb(list []*message.MiniItem, f func(*message.MiniItem) ctype.MiniItem) []ctype.MiniItem {
	r := make([]ctype.MiniItem, len(list))
	for i, item := range list {
		r[i] = f(item)
	}
	return r
}